package adv.np.pViaggianti.view.gwt.server;

import adv.np.pViaggianti.view.gwt.client.authentication.AuthenticationInfo;
import adv.np.pViaggianti.view.gwt.client.authentication.UserInfo;
import adv.np.pViaggianti.view.gwt.client.serviceCaller.AAService;
import adv.np.pViaggianti.view.gwt.client.valueObjects.LoginVO;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;

/**
 * <p>
 * AAService = authentication & Authorization Service
 * </p><p>
 * classe lato server che implementa le operazioni richieste dal client
 * (in questo caso Autenticazione ed Autorizzazione)
 * </p><p>
 * <b>NOTA:</b> si ricorda che le operazioni vengono svolte in <i>ASINCRONIA</i>
 * </p><p>
 * <b>NOTA 2:</b> si implementa l'interfaccia <i>SINCRONA</i>, e ci pensa GWT
 * a fornire i servizi di serializzazione, marshalling, callBack,  etc. etc.
 * </p>
 *
 * @author  Giovanni Dall'Oglio Risso
 */
public class AAServiceImpl 
	extends RemoteServiceServlet 
	implements AAService {

	private static final long
	serialVersionUID = 200801091643L; //(current date time)

	
	
	// le funzioni da eseguire

	public AuthenticationInfo logIn(LoginVO loginValueObj) {
		
		if (loginValueObj == null) return null;
		
		if (! loginValueObj.getUserName().equals(loginValueObj.getPassword()))
			return null;
		
		UserInfo uInfo = new UserInfo();
		uInfo.setName("Giovanni");
		uInfo.setSurname("Dall'Oglio Risso");
		uInfo.setUserName(loginValueObj.getUserName());
		
		AuthenticationInfo authInfo = new AuthenticationInfo();
		authInfo.setUserInfo(uInfo);
		return authInfo;
	}
}
